home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Art / I / IMAGE 1.45.cpt / Macros / Input_Output Macros < prev    next >
Text File  |  1992-07-23  |  4KB  |  179 lines

  1. macro 'Save using Time as Name';
  2. {Note: Colons are not allowed in file names.}
  3. var
  4.   year,month,day,hour,minute,second,DayOfWeek:integer;
  5. begin
  6.   GetTime(year,month,day,hour,minute,second,DayOfWeek);
  7.   SaveAs(year-1900:2,'-',month:2,'-',day:2,
  8.          '/',hour:2,'-'minute:2,'-',second:2);
  9. end;
  10.  
  11.  
  12. macro 'Open with selection [O]';
  13. begin
  14.   if nPics>0 then KillRoi; {Save Selection}
  15.   Open('');                {Prompt for file name}
  16.   RestoreROI;              {Transfer selection to new window}
  17. end;
  18.  
  19.  
  20. macro 'Save All';
  21. {
  22. Saves all currently open images in a folder using '001', '002', etc.
  23. as the file names. The save file dialog box will be displayed once
  24. (and only once) so that you can specify the folder to save the files in.
  25. Leave the file name blank(e.g. SaveAs('')) to get a dialog box for each file.
  26. }
  27. var
  28.   n:integer;
  29. begin
  30.   RequiresVersion(1.45);
  31.   for n:=1 to nPics do begin
  32.     SelectPic(n);
  33.     SaveAs(n:3);
  34.     {Export(n:3);}
  35.   end;
  36. end;
  37.  
  38.  
  39. macro 'Import FITS';
  40. {
  41. This is an example of how to decode an image file header. In this case, the header is 2880 bytes long and bytes 266-269 contain the width(ASCII) and bytes
  42. 246-249 cantain the height. Refer to "FITS:A Flexible Image Transport System",
  43. Astronomy and Astrophysics Supplement Series 44, 1981, 363-370.
  44. }
  45. var
  46.   width,height,offset,i,d,m:integer;
  47. begin
  48.   width:=512; 
  49.   height:=1;
  50.   offset:=0;
  51.   SetImport('8-bit'); 
  52.   SetCustom(width,height,offset);
  53.   Import(''); {Read in header as an image, prompting for the file name.}
  54.   if not ((GetPixel(108,0)=49) and (GetPixel(109,0)=54)) then begin
  55.     {BITPIX<>16}
  56.     PutMessage('This macro only reads 16-bit FITS files');
  57.     Dispose(nPics);
  58.     exit;
  59.   end;
  60.   m:=1000;
  61.   width:=0;
  62.   for i:=266 to 269 do begin
  63.     d:=GetPixel(i,0);
  64.     if d=32 then d:=48;
  65.     d:=d-48;
  66.     width:=width+d*m;
  67.     m:=m/10;
  68.   end;
  69.   m:=1000;
  70.   height:=0;
  71.   for i:=346 to 349 do begin
  72.     d:=GetPixel(i,0);
  73.     if d=32 then d:=48;
  74.     d:=d-48;
  75.     height:=height+d*m;
  76.     m:=m/10;
  77.   end;
  78.   Dispose(nPics);  {The ID of the last window opened is equal to nPics.}
  79.   offset:=2880;
  80.   SetImport('16-bit Signed; Calibrate; Autoscale');
  81.   SetCustom(width,height,offset);
  82.   Import('');  {No prompt this time; Import remembers the name.}
  83.   FlipVertical;
  84. end;
  85.  
  86.  
  87. macro 'Import Image TIFF File';
  88. {
  89. As an example of how to import a foreign file format, this macro reads
  90. the TIFF files created by Image. The format of an Image TIFF file
  91. is described in Appendix E of the Image manual.
  92. }  
  93. var
  94.   width,height,offset:integer;
  95. begin
  96.   width:=768; 
  97.   height:=1;
  98.   offset:=0;
  99.   SetImport('8-bit'); 
  100.   SetCustom(width,height,offset);
  101.   Import(''); {Read in header as an image, prompting for the file name.}
  102.   if not ((GetPixel(0,0)=77) and (GetPixel(0,0)=77)) then begin  {'MM'}
  103.     PutMessage('This is not a TIFF file.');
  104.     Dispose(nPics);
  105.     exit;
  106.   end;
  107.   width := (GetPixel(30,0)*256) + GetPixel(31,0);
  108.   height := (GetPixel(42,0)*256) + GetPixel(43,0);
  109.   Dispose(nPics);  {The ID of the last window opened is equal to nPics.}
  110.   offset:=768;
  111.   SetCustom(width,height,offset);
  112.   Import('');  {No prompt this time; Import remembers the name.}
  113. end;
  114.  
  115.  
  116. macro 'Import Multiple Images per File';
  117. {
  118. Imports a series of 256x256 images contained in a single file, in this
  119. case an NIH Image stack with an arbitrary number of 256x256 slices.
  120. }
  121. var
  122.   offset,i,PicSize,HdrSize,width,height:integer;
  123. begin
  124.   HdrSize:= 768;
  125.   width:= 256;
  126.   height:=256;
  127.   PicSize:=width*height;
  128.   offset:=HdrSize;
  129.   SetImport('8-bit');
  130.   for I:=1 to 100 do begin  {Macro will terminate at eof}
  131.     SetCustom(width,height,offset);
  132.     Import('');
  133.     offset:=offset+PicSize;
  134.   end;
  135. end;
  136.  
  137.  
  138. macro 'Import PET';
  139. var
  140.   offset,i,PicSize,HdrSize,width,height:integer;
  141. begin
  142.   HdrSize:= 0;
  143.   width:= 128;
  144.   height:=128;
  145.   PicSize:=width*height;
  146.   offset:=HdrSize;
  147.   SetImport('8-bit');
  148.   for I:=1 to 100 do begin  {Macro will terminate at eof}
  149.     SetCustom(width,height,offset);
  150.     Import('');
  151.     offset:=offset+PicSize;
  152.   end;
  153. end;
  154.  
  155.  
  156. macro 'Convert Files';
  157. {
  158. Converts a set of raw data files(all in the same folder) with names
  159. in the form raw.001, raw.002, etc to TIFF or PICT.  As long as the
  160. converted files are saved in the same folder, you should
  161. only see two file dialog boxes(one for the first Import and one for
  162. the first SaveAs).
  163. }
  164. Var
  165.   i,nFiles:integer;
  166. begin
  167.   nFiles:=GetNumber('Number of files:',5);
  168.   for i:=1 to nFiles do begin
  169.     Import('raw.',i:3);
  170.     SetPicName('file',i:3);
  171.     SaveAs;
  172.     Dispose;
  173.   end;
  174. end;
  175.  
  176.  
  177.  
  178.  
  179.